#include <stdio.h>
#include "New.h"
#include "Object.h"
#include "Set.h"

//static const size_t _Set = sizeof(struct Set);
//static const size_t _Object = sizeof(struct Object);

extern const void * Set;
extern const void * Object;


void main()
{ 
	void * set = new(Set, 1);
	void * a = add(set, new(Object));
	void * b = add(set, new(Object));
	void * c = new(Object);

	printf("%d\n", ((struct Set *)set)->count);
	
	if (contains(set, a) && contains(set, b))
		puts("ok");
	
	if (contains(set, c))
		puts("contains?");
	
	if (differ(a, add(set, a)))
		puts("differ?");
	
	if (contains(set, drop(set, a)))
		puts("drop?");
	
	delete(drop(set, b));
	delete(drop(set, c));
}